package com.aijia.custom.product.utils;

import java.util.LinkedList;

/**
 * Created by yejianjun on 2019/1/22.
 */

public class ArtStatusHelper {

    private static LinkedList<IArtStatusListener> mListener;
    private static ArtStatusHelper instance;

    public static ArtStatusHelper getInstance() {
        if (null == mListener) {
            mListener = new LinkedList<>();
            instance = new ArtStatusHelper();
        }
        return instance;
    }

    public interface IArtStatusListener {
        /**
         * @param wsheetId   合同号的ID
         * @param artId      工艺ID 唯一
         * @param status     工艺完成状态  1：生产中 2： 部分完成 3： 全部完成
         * @param finishDate 完成时间
         */
        void updateStatus(int wsheetId, int artId, int status, String finishDate);

        void updateFinishDate(int wsheetId, String finishDate);

        void updateRemark(int wsheetId, String content);

        /**
         * 更新列表状态：
         *
         * @param wsheetId 合同号的ID
         * @param status   1：生产中 2： 部分完成 3： 全部完成
         */
        void updateListStatus(int wsheetId, int status);
    }

    public void addListener(IArtStatusListener listener) {
        mListener.add(listener);
    }

    public void removeListener(IArtStatusListener listener) {
        mListener.remove(listener);
    }

    /**
     * @param wsheetId   合同号的ID
     * @param artId      工艺ID 唯一
     * @param status     工艺完成状态  1：生产中 2： 部分完成 3： 全部完成 4：自己联系
     * @param finishDate 完成时间
     */
    public void updateStatus(int wsheetId, int artId, int status, String finishDate) {
        for (int i = 0; i < mListener.size(); i++) {
            mListener.get(i).updateStatus(wsheetId, artId, status, finishDate);
        }
    }


    /**
     * 更新网店定金的状态
     *
     * @param wsheetId 合同号的ID
     * @param status   1：生产中 2： 部分完成 3： 全部完成 4：自己联系
     */
    public void updateListStatus(int wsheetId, int status) {
        for (int i = 0; i < mListener.size(); i++) {
            mListener.get(i).updateListStatus(wsheetId, status);
        }
    }

    public void updateFinishDate(int wsheetId, String finishDate) {
        for (int i = 0; i < mListener.size(); i++) {
            mListener.get(i).updateFinishDate(wsheetId, finishDate);
        }
    }

    public void updateRemark(int wsheetId, String content) {
        for (int i = 0; i < mListener.size(); i++) {
            mListener.get(i).updateRemark(wsheetId, content);
        }
    }

}
